package com.yue.comparatordemo;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class StudentMaster {
	//属性
	//学生信息集合对象
	private Student[] arrStus;

	
	//行为
	
	public StudentMaster() {
		super();
		// 调用初始化方法
		init();
	}
	
	public void showScore() {
		
		//初始化
		//init（）；
		
		//排序
		bubbleSort();
		
		//打印信息
		printArr();
	}
	//数据录入行为
	private void init() {
		// 准备数据
		Scanner sc =new Scanner(System.in);
		System.out.println("请输入班级学生人数：");
		//学生人数
		int count =sc.nextInt();
		// 根据学生人数创建学生数组
		// 此处初始化的是成员变量，而不是局部变量
		arrStus = new Student[count];
		//增添数据（可以控制输入台）
		for(int i=0;i<count;i++) {
			//输入参数
			System.out.println("请输入第"+(i+1)+"个学生的姓名");
			String strName=sc.next();
			System.out.println("请输入第"+(i+1)+"个学生的学号");
			String strNum=sc.next();
			System.out.println("请输入第"+(i+1)+"个学生的成绩");
			double fScore=sc.nextDouble();
			//根据输入的参数，构建一个学生的对象实例
			Student stu =new Student(strName,strNum,fScore);
			//吧创建的学生对象放到学生数组中
			arrStus[i] = stu;
		}
				
	}
	//排序行为
	/**
	 * 冒泡排序算法【从小到大】
	 */
	private void bubbleSort() {
		//数组转化List对象
		List lstStus=Arrays.asList(arrStus);
		
		//提供Student比较器
		
		Collections.sort(lstStus, new StudentComparator());
		
		//将list转化为数组
		arrStus = (Student[])lstStus.toArray();
		
	}

	
	//学生信息输出行为
	/**
	 * 打印数组
	 */
	private void printArr() {
		for(Student i :arrStus) {
			i.printMe();
		}
		//换行
		System.out.println();
		
	}

}
